package m6;

import java.util.Scanner;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class TestBQ {
    public static void main(String[] args) {
        // BlockingQueue -- 阻塞队列
        // 线程之间传递数据可以使用这个集合
        // 取数据的线程，在没有数据的情况下，会阻塞等待

        BlockingQueue<Double> bq = new ArrayBlockingQueue<Double>(10);

        new Thread(() -> {
            System.out.println("按回车产生随机数");
            new Scanner(System.in).nextLine();
            bq.add(Math.random());
        }).start();

        new Thread(() -> {
            Double r = null;
            try {
                r = bq.take();
            } catch (InterruptedException e) {
            }
            System.out.println("第二个线程已经得到结果："+r);
        }).start();
    }
}
